It is well known in the art to widely use fuzzy logic control based on fuzzy inference in controlling various consumer electronics, household appliances, automobiles, cameras and the like. In the fuzzy control, in general, if fuzzy conception or fuzzy condition "A" holds well, then control "X" is executed. This proposition is represented by a fuzzy rule "if A then X". More specifically, control "X" is executed in a degree determined by how well a fact indicated by input data conforms to fuzzy conception "A". In this fuzzy rule, A is referred to as "antecedent" and X as "consequent". The degree of conformity of the fact to fuzzy conception A is called "grade". Therefore, it is necessary to calculate such grade with regard to each fuzzy conception. An input label is used for identifying each input fuzzy conception or condition. Accordingly a fuzzy conception is referred to also as an input label. An output label is also used for identify each output fuzzy conception or control included in the consequent of a fuzzy rule. Therefore, an output fuzzy conception is referred to as an output label.
In the fuzzy inference system mentioned above, multiple input channels are provided to receive multiple input data such as velocity, pressure and temperature. And multiple input labels are defined in each of the input channels. The system also has multiple output channels to produce multiple output data such as on/off switch signal and valve control signal. And multiple output labels are also defined in each of the output channels. Therefore the total number of the input label grades, each of which needs computation, becomes significantly large, being equal to the number of input channels times the number of input labels per input channel. Further, as discussed below, min-max computation on the input label grades is necessary for each of the output labels in order to choose the adequate output labels.
The min-max computation on the input label grades will be explained below with reference to the following illustrative example, which includes 7 fuzzy rules.
______________________________________ Rule (1) if A and B then X Rule (2) if B and C then X Rule (3) if E and F then X Rule (4) if G and M and N then X Rule (5) if C and D then Y Rule (6) if H and I then Z Rule (7) if J and K and L then Z ______________________________________
The antecedents of these rules include input labels A through N, and the consequents include output labels X through Z. It is assumed that grades Ag through Ng of the input labels A through N have the following values.
Ag=0, Bg=0.06, Cg=0.7, Dg=0.55, Eg=0.65, Fg=0, Gg=0.45, Hg=0.9, Ig=0, Jg=0, Kg=0, Lg=0.62, Mg=0.2, Ng=0.
First, instead of AND operation, min computation is performed on each rule, which detects the minimum grade among the grades of the input labels for each rule. For example, the antecedent of rule (1) includes input labels A and B with grades being Ag=0 and Bg=0.66. Therefore, Ag(=0) is selected as the minimum grade since Ag is smaller than Bg. Similarly, rule (2) selects grade Bg(=0.06) of input label B and rule (3) selects grade Fg(=0) of input label F. The rule (4) selects grade Ng(=0).
Then, instead of OR operation, max computation is performed for each of the output labels, which detects the maximum grade among the previously detected minimum grades of rules which have the same output label as their consequents. For example, regarding rules (1), (2), (3) and (4) all having the same output label X, grade Bg(=0.06) is selected as the maximum grade among minimum grades Ag, Bg, Fg and Ng. Similar max computations are performed for other output labels Y and Z, choosing grade Dg(=0.55) for output label Y and Ig=Jg=Kg=0 for Z respectively.
Prior art fuzzy control systems have been used mainly in low speed control applications such as home appliances. However, when fuzzy control systems are desired to be used in high speed and relatively complicated control applications such as cruise controls or suspension control of vehicles and the like, computing speed should be significantly improved to typically 1000 times faster than the conventional one. The improvement of the computation speed is achieved by synergistically tuning three computation stages: the grade calculations of input labels, the min-max operations performed on the input label grades to obtain output label grades, and the calculations of center of gravity of output label's membership functions.
Conventional min operations on input label grades have been carried out by comparing each of input label grades with all other input label grades one by one. A typical example of such comparison is Japanese patent laid-open 4-10133 describing comparison achieved by software program. These comparisons by software, however, have difficulty in improving their computing speed because of a large number of magnitude comparisons. Another typical example of comparison achieved by hardware is Japanese patent laid-open 2-159628. This type of solution also has difficulty in improving its execution speed because of a large number of comparison circuits needed for respective input labels, and manufacturing cost reduction is also difficult.
In a typical fuzzy inference system comprising input channels including a plurality of input labels, most of input label grades are zeros. For example, if every membership function crosses only to neighboring functions in each of input channels, then at most two non-zero grades are outputted from each input channel. This means 70-80% of the input label grades on which the min-max operation is performed are zeros. The zero grade, occupying most of input labels, has peculiarity in a sense that it does not contribute to the results of the min-max operations. However, in prior min-max operations, the zero grades were processed in the same manner as non-zero grades. Thus many redundant operations were executed resulting in slow operation speed and large hardware size.